/* 合法uri*/
export function validateURL(textval) {
    const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
    return urlregex.test(textval)
}

/* 小写字母*/
export function validateLowerCase(str) {
    const reg = /^[a-z]+$/
    return reg.test(str)
}

/* 大写字母*/
export function validateUpperCase(str) {
    const reg = /^[A-Z]+$/
    return reg.test(str)
}

/* 大小写字母*/
export function validatAlphabets(str) {
    const reg = /^[A-Za-z]+$/
    return reg.test(str)
}

//整数
export function IsNum(num) {
    var reNum = /^\d*$/;
    return reNum.test(num);
}

//是否包含特殊字符
export function stripscript(s) {
    let pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]<>/?~！@#￥……&*（）——|{}【】‘；：”“'。，、？]")
    let rs = "";
    for (let i = 0; i < s.length; i++) {
        rs = rs + s.substr(i, 1).replace(pattern, '');
    }
    return rs;
}
//拦截xss攻击
export function isIllegal(s) {
    let pattern=/select|update|delete|truncate|join|union|exec|insert|drop|count|'|"|;|>|<|%/i;
    return pattern.test(s);
}
//正整数
export function isInterger(s) {
    let re = /^\+?[1-9]\d*$/;
    return re.test(s)
}

//非负整数
export function IntergerIncludeZero(s) {
    let re = /^\d+$/;
    return re.test(s);
}

//正小数 不能为0
export function isNumber(s) {
    // let re = /^[1-9]\d{0,6}(.[0-9]{1,2})?$/;
    // let re = /^([1-9]\d{0,6}(.[0-9]{1,2})?)|(0.[0-9]{1,2})$/;
    let re=/(^[1-9]\d{0,6}(.[0-9]{1,2})?$)|(^0.[0-9]{1,2}$)/;
    return re.test(s)
}
//正小数 包括0
export function isNumberZ(s) {
    let re = /^[0-9]+([.]{1}[0-9]{1,2})?$/;
    return re.test(s)
}
//判断手机号
export function validatePhoneNum(value) {
    const reg = /^1[3|4|5|7|8|9][0-9]\d{8}$/g;
    return reg.test(value);
};

//判断手机号和电话号码
export function validatePhoneNum2(value) {
    const reg = /\d{6,}$/g;
    return reg.test(value);
};

//密码中必须同时含有大写字母、小写字母、数字，且长度为6-18位
export function validatePWD(value) {
    const reg = /^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])).{6,18}$/g;
    return reg.test(value);
};

//判断两个对象是否相等
export function objIsEqual(objA, objB) {
    if (typeof arguments[0] != typeof arguments[1])
        return false;
//对象
    if (arguments[0] instanceof Object && arguments[1] instanceof Object) {
        var result = true;
        var attributeLengthA = 0, attributeLengthB = 0;
        for (var o in arguments[0]) {
            //判断两个对象的同名属性是否相同（数字或字符串）
            if (typeof arguments[0][o] == 'number' || typeof arguments[0][o] == 'string')
                result = eval("arguments[0]['" + o + "'] == arguments[1]['" + o + "']");
            else {
                //如果对象的属性也是对象，则递归判断两个对象的同名属性
                //if (!arguments.callee(arguments[0][o], arguments[1][o]))
                if (!arguments.callee(eval("arguments[0]['" + o + "']"), eval("arguments[1]['" + o + "']"))) {
                    result = false;
                    return result;
                }
            }
            ++attributeLengthA;
        }

        for (var o in arguments[1]) {
            ++attributeLengthB;
        }

        //如果两个对象的属性数目不等，则两个对象也不等
        if (attributeLengthA != attributeLengthB)
            result = false;
        return result;
    }
    return arguments[0] == arguments[1];
}

//判断数组中有无这一项
export function hasContain(arr, obj) {
        let i = arr.length;
        while (i--) {
            if (arr[i] == obj) {
                return true;
            }
        }
        return false;

}

//判断数组中有无该对象
